package com.qnbc.mystery.pojo.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.qnbc.mystery.core.annotation.Excel;
import com.qnbc.mystery.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 订单退货申请对象 order_return_apply
 *
 * @author guzj
 * @date 2024-01-24
 */
@ApiModel(description = "订单退货申请")
public class OrderReturnApply extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 订单id */
    @Excel(name = "订单id")
    private Long orderId;

    @ApiModelProperty("申请类型：0->退货退款，1->退款")
    private  int returnApplyType;

    /** 收货地址表id */
    @Excel(name = "收货地址表id")
    private Long companyAddressId;

    /** 退货商品id */
    @Excel(name = "退货商品id")
    private Long productId;

    /** 订单编号 */
    @Excel(name = "订单编号")
    private String orderSn;

    /** 会员用户名 */
    @Excel(name = "会员用户名")
    private String memberUsername;

    /** 退款金额 */
    @Excel(name = "退款金额")
    private BigDecimal returnAmount;

    /** 退货人姓名 */
    @Excel(name = "退货人姓名")
    private String returnName;

    /** 退货人电话 */
    @Excel(name = "退货人电话")
    private String returnPhone;

    /** 申请状态：0->待处理；1->退货中；2->已完成；3->已拒绝 */
    @Excel(name = "申请状态：0->待处理；1->退货中；2->已完成；3->已拒绝")
    private Long status;

    /** 处理时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "处理时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date handleTime;

    /** 商品图片 */
    @Excel(name = "商品图片")
    private String productPic;

    /** 商品名称 */
    @Excel(name = "商品名称")
    private String productName;

    /** 商品品牌 */
    @Excel(name = "商品品牌")
    private String productBrand;

    /** 商品销售属性：颜色：红色；尺码：xl; */
    @Excel(name = "商品销售属性：颜色：红色；尺码：xl;")
    private String productAttr;

    /** 退货数量 */
    @Excel(name = "退货数量")
    private Long productCount;

    /** 商品单价 */
    @Excel(name = "商品单价")
    private BigDecimal productPrice;

    /** 商品实际支付单价 */
    @Excel(name = "商品实际支付单价")
    private BigDecimal productRealPrice;

    /** 原因 */
    @Excel(name = "原因")
    private String reason;

    /** 描述 */
    @Excel(name = "描述")
    private String description;

    /** 凭证图片，以逗号隔开 */
    @Excel(name = "凭证图片，以逗号隔开")
    private String proofPics;

    /** 处理备注 */
    @Excel(name = "处理备注")
    private String handleNote;

    /** 处理人员 */
    @Excel(name = "处理人员")
    private String handleMan;

    /** 收货人 */
    @Excel(name = "收货人")
    private String receiveMan;

    /** 收货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "收货时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date receiveTime;

    /** 收货备注 */
    @Excel(name = "收货备注")
    private String receiveNote;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setOrderId(Long orderId)
    {
        this.orderId = orderId;
    }

    public Long getOrderId()
    {
        return orderId;
    }
    public void setCompanyAddressId(Long companyAddressId)
    {
        this.companyAddressId = companyAddressId;
    }

    public Long getCompanyAddressId()
    {
        return companyAddressId;
    }
    public void setProductId(Long productId)
    {
        this.productId = productId;
    }

    public Long getProductId()
    {
        return productId;
    }
    public void setOrderSn(String orderSn)
    {
        this.orderSn = orderSn;
    }

    public String getOrderSn()
    {
        return orderSn;
    }
    public void setMemberUsername(String memberUsername)
    {
        this.memberUsername = memberUsername;
    }

    public String getMemberUsername()
    {
        return memberUsername;
    }
    public void setReturnAmount(BigDecimal returnAmount)
    {
        this.returnAmount = returnAmount;
    }

    public BigDecimal getReturnAmount()
    {
        return returnAmount;
    }
    public void setReturnName(String returnName)
    {
        this.returnName = returnName;
    }

    public String getReturnName()
    {
        return returnName;
    }
    public void setReturnPhone(String returnPhone)
    {
        this.returnPhone = returnPhone;
    }

    public String getReturnPhone()
    {
        return returnPhone;
    }
    public void setStatus(Long status)
    {
        this.status = status;
    }

    public Long getStatus()
    {
        return status;
    }
    public void setHandleTime(Date handleTime)
    {
        this.handleTime = handleTime;
    }

    public Date getHandleTime()
    {
        return handleTime;
    }
    public void setProductPic(String productPic)
    {
        this.productPic = productPic;
    }

    public String getProductPic()
    {
        return productPic;
    }
    public void setProductName(String productName)
    {
        this.productName = productName;
    }

    public String getProductName()
    {
        return productName;
    }
    public void setProductBrand(String productBrand)
    {
        this.productBrand = productBrand;
    }

    public String getProductBrand()
    {
        return productBrand;
    }
    public void setProductAttr(String productAttr)
    {
        this.productAttr = productAttr;
    }

    public String getProductAttr()
    {
        return productAttr;
    }
    public void setProductCount(Long productCount)
    {
        this.productCount = productCount;
    }

    public Long getProductCount()
    {
        return productCount;
    }
    public void setProductPrice(BigDecimal productPrice)
    {
        this.productPrice = productPrice;
    }

    public BigDecimal getProductPrice()
    {
        return productPrice;
    }
    public void setProductRealPrice(BigDecimal productRealPrice)
    {
        this.productRealPrice = productRealPrice;
    }

    public BigDecimal getProductRealPrice()
    {
        return productRealPrice;
    }
    public void setReason(String reason)
    {
        this.reason = reason;
    }

    public String getReason()
    {
        return reason;
    }
    public void setDescription(String description)
    {
        this.description = description;
    }

    public String getDescription()
    {
        return description;
    }
    public void setProofPics(String proofPics)
    {
        this.proofPics = proofPics;
    }

    public String getProofPics()
    {
        return proofPics;
    }
    public void setHandleNote(String handleNote)
    {
        this.handleNote = handleNote;
    }

    public String getHandleNote()
    {
        return handleNote;
    }
    public void setHandleMan(String handleMan)
    {
        this.handleMan = handleMan;
    }

    public String getHandleMan()
    {
        return handleMan;
    }
    public void setReceiveMan(String receiveMan)
    {
        this.receiveMan = receiveMan;
    }

    public String getReceiveMan()
    {
        return receiveMan;
    }
    public void setReceiveTime(Date receiveTime)
    {
        this.receiveTime = receiveTime;
    }

    public Date getReceiveTime()
    {
        return receiveTime;
    }
    public void setReceiveNote(String receiveNote)
    {
        this.receiveNote = receiveNote;
    }

    public String getReceiveNote()
    {
        return receiveNote;
    }

    public int getReturnApplyType() {
        return returnApplyType;
    }

    public void setReturnApplyType(int returnApplyType) {
        this.returnApplyType = returnApplyType;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("orderId", getOrderId())
            .append("companyAddressId", getCompanyAddressId())
            .append("productId", getProductId())
            .append("orderSn", getOrderSn())
            .append("createTime", getCreateTime())
            .append("memberUsername", getMemberUsername())
            .append("returnAmount", getReturnAmount())
            .append("returnName", getReturnName())
            .append("returnPhone", getReturnPhone())
            .append("status", getStatus())
            .append("handleTime", getHandleTime())
            .append("productPic", getProductPic())
            .append("productName", getProductName())
            .append("productBrand", getProductBrand())
            .append("productAttr", getProductAttr())
            .append("productCount", getProductCount())
            .append("productPrice", getProductPrice())
            .append("productRealPrice", getProductRealPrice())
            .append("reason", getReason())
            .append("description", getDescription())
            .append("proofPics", getProofPics())
            .append("handleNote", getHandleNote())
            .append("handleMan", getHandleMan())
            .append("receiveMan", getReceiveMan())
            .append("receiveTime", getReceiveTime())
            .append("receiveNote", getReceiveNote())
            .toString();
    }
}
